﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using FlotasDesktop;
using System.Data.SqlClient;

namespace GestorDeFlotasDesktop
{
    public partial class Form1 : Form
    {
        String conexion;
        public Form1(String usuario)
        {
            InitializeComponent();
            Utils utils = new Utils();
            conexion = utils.cargarProperties();
            this.mostrarMenuSegunRol(usuario);
        }

        private void mostrarMenuSegunRol(String usuario)
        {
            /*Obtener Rol del usuario*/
            using (SqlConnection connection = new SqlConnection(conexion))
            {
                try
                {
                    using (SqlCommand command = new SqlCommand())
                    {
                        connection.Open();
                        string query = "SELECT f.nombre FROM tequilaso.usuario u, tequilaso.usuario_rol ur, tequilaso.rol r,  tequilaso.rol_funcionalidad rf, tequilaso.funcionalidad f WHERE u.nombre = '" + usuario + "' AND u.id = ur.id_usuario AND r.id = ur.id_rol AND r.id = rf.id_rol AND rf.id_funcionalidad =  f.id";
                        SqlDataAdapter da = new SqlDataAdapter(query,connection);
                        DataTable dataTable = new DataTable();
                        int recordsAffected = da.Fill(dataTable);
                        if (recordsAffected > 0)
                        {
                          foreach(ToolStripMenuItem menu in this.menuStrip1.Items){
                            foreach (DataRow dr in dataTable.Rows)
                            {
                                if (menu.Name == dr[0].ToString())
                                {
                                    menu.Visible = true;
                                    break;
                                }
                            }
                          }
                        }

                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error al cargar Rol de usuario", "Error");
                }
                finally { connection.Close(); }
            }

        }

        private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
        {

        }

        private void altaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            GestorDeFlotasDesktop.AbmAuto.AbmAuto autoAlta = new GestorDeFlotasDesktop.AbmAuto.AbmAuto();
            autoAlta.Show();
        }

        private void bajaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AbmAuto.BajaAuto formulario = new AbmAuto.BajaAuto();
            AbmAuto.ListadoAuto listadoAuto = new AbmAuto.ListadoAuto();
            listadoAuto.setearFormBaja(formulario);
            listadoAuto.Show();

        }

        private void modificacionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AbmAuto.ModificacionAuto formulario = new AbmAuto.ModificacionAuto();
            AbmAuto.ListadoAuto listadoAuto = new AbmAuto.ListadoAuto();
            listadoAuto.setearFormModificacion(formulario);
            listadoAuto.Show();

        }

        private void altaChoferToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            AbmChofer.AltaChofer alta = new AbmChofer.AltaChofer();         
            alta.Show();
        }

        private void bajaToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            AbmChofer.ListadoChofer listadoChofer = new AbmChofer.ListadoChofer();
            listadoChofer.setearFormBaja();
            listadoChofer.Show();
        }

        private void modificacionToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            AbmChofer.ListadoChofer listadoChofer = new AbmChofer.ListadoChofer();
            listadoChofer.setearFormModificacion();
            listadoChofer.Show();
        }

        private void choferToolStripMenuItem_Click(object sender, EventArgs e)
        {
           
        }

        private void registrarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            RegistrarViaje.RegistrarViajes registrar = new RegistrarViaje.RegistrarViajes();
            registrar.Show();
        }

        private void listadoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SeleccionDeListadoMejores.SeleccionListadosMejores listado = new SeleccionDeListadoMejores.SeleccionListadosMejores();
            listado.Show();


        }

        private void altaToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            AbmTurno.AltaTurno alta = new AbmTurno.AltaTurno();
            alta.Show();
               
        }

        private void bajaToolStripMenuItem2_Click(object sender, EventArgs e)
        {
            AbmTurno.ListadoTurno listado = new AbmTurno.ListadoTurno();
            listado.setearFormBaja();
            listado.Show();
        }

        private void modificacionToolStripMenuItem2_Click(object sender, EventArgs e)
        {
            AbmTurno.ListadoTurno listado = new AbmTurno.ListadoTurno();
            listado.setearFormModificacion();
            listado.Show();
        }

        private void bajaToolStripMenuItem3_Click(object sender, EventArgs e)
        {
            AbmCliente.ListadoCliente listado = new AbmCliente.ListadoCliente();
            listado.setearFormBaja();
            listado.Show();
        }

        private void modificacionToolStripMenuItem3_Click(object sender, EventArgs e)
        {
            AbmCliente.ListadoCliente listado = new AbmCliente.ListadoCliente();
            listado.setearFormModificacion();
            listado.Show();
        }

        private void altaToolStripMenuItem2_Click(object sender, EventArgs e)
        {
            AbmCliente.AltaCliente alta = new AbmCliente.AltaCliente();
            alta.Show();
        }

        private void relojToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            AbmReloj.AbmReloj alta = new AbmReloj.AbmReloj();
            alta.Show();
        }

        private void facturarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Facturar.Facturar facturar = new Facturar.Facturar();
            facturar.Show();
        }

        private void rendicionCuentaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            RendirViajes.RendierViajes rendir = new RendirViajes.RendierViajes();
            rendir.Show();
        }

        private void altaToolStripMenuItem3_Click(object sender, EventArgs e)
        {
            AbmUsuario.AltaUsuario alta = new AbmUsuario.AltaUsuario();
            alta.Show();
        }

        private void bajaToolStripMenuItem4_Click(object sender, EventArgs e)
        {
            AbmUsuario.ListadoUsuarios listado = new AbmUsuario.ListadoUsuarios();
            listado.setearFormBaja();
            listado.Show();
        }

        private void modificacionToolStripMenuItem4_Click(object sender, EventArgs e)
        {
            AbmUsuario.ListadoUsuarios listado = new AbmUsuario.ListadoUsuarios();
            listado.setearFormModificacion();
            listado.Show();
        }

        private void altaToolStripMenuItem4_Click(object sender, EventArgs e)
        {
            AbmRol.AbmRol alta = new AbmRol.AbmRol();
            alta.Show();
        }

        private void choferAutoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AbmChoferAuto.AbmChoferAutoIntegrado vincular = new AbmChoferAuto.AbmChoferAutoIntegrado();
            vincular.Show();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void ABM_Auto_Click(object sender, EventArgs e)
        {

        }
    }
}
